<?php

include_once dirname(__FILE__)."/../model/MemberModel.php";

/**
* 事件类型信息处理
*/
class eventMsgDisposer extends BaseMsgDisposer
{


	private $fromUsername;

	private $toUsername;

	function dispose($postObj){

		 //获取内容
	    $this->fromUsername = $postObj->FromUserName; //动作触发人（微信用户id）
	    $this->toUsername = $postObj->ToUserName;     //服务号微信id

	    //获取事件类型
	    $eventType= $postObj->Event; //事件类型（CLICK:用户点击自定义菜单,VIEW:点击菜单跳转链接）

	    $eventKey=$postObj->EventKey;

	    //处理点击菜单事件
	    if($eventType=="CLICK"){

	    	return $this->disposeClick($eventKey);
	    }

	    // 处理用户关注事件
	    if($eventType=="subscribe"){

	    	return $this->disposeSubscribe();
	    }


		return "";
	}



	private function getBundUrl(){

		$return_url=getConfig("return_url_oauth2");

		$app_id=getConfig("app_id");

		$url_connect_code=getConfig("url_connect_code");

		$url=$url_connect_code."?appid=$app_id&redirect_uri=$return_url&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";

		return $url;
	}


	// 用户关注事件
	function disposeSubscribe(){

		$url=$this->getBundUrl();

		$content="感谢您关注打卡器小助手！绑定打卡器账号后获取更多功能。<a href='".$url."'>点我绑定账号</a>";

		return $this->getTextResult($this->fromUsername,$this->toUsername,$content);
	}




	// 点击自定义菜单
	function disposeClick($value){

		$replyContent="";

		// 判断用户点击的是那个事件
		switch ($value) {
			case 'V1001_PIC_CODE':	//点击我的二维码
				// $replyContent="你点击了我的二维码";
				$replyContent=$this->clickPicCode();
				break;
			case 'V1001_ACTIVES':	//点击已报名的活动
				$replyContent=$this->clickActives();
				break;
			case 'V1001_RANKING':	// 点击排行榜
				$replyContent=$this->clickRanking();
				break;			
			default:
				# code...
				break;
		}

	
		return $replyContent;
	}


	
	// 点击 我的二维码 菜单，处理方法
	function clickPicCode(){

		// print_log("--- in clickPicCode");

		//获得当前用户openId
		$opendId=$this->fromUsername;

		// 检查用户是否已经绑定
		$model=new MemberModel();

		$isband=$model->checkBand($opendId);

		// print_log("--- in clickPicCode isband:".$isband);


		// 如果没有绑定，提示用户绑定
		if(!$isband){

			$url=$this->getBundUrl();

			$content="您还没有绑定打卡器账号，暂不能使用该功能。<a href='".$url."'>点我绑定账号</a>";

			return $this->getTextResult($this->fromUsername,$this->toUsername,$content);
		}

		// 使用 openid 获取 memberid
		$memberid=$model->getMemberIdByOpenId($opendId);

		// print_log("--- in clickPicCode memberid:".$memberid);

		// 回复用户，查看会员详情页面 url
		$info_url=getConfig("APP_PATH")."/index.php/Member/picCode?id=$memberid";

		// print_log("info_url:".$info_url);

		//获取用户二维码图片url
		// $imageUrl=$model->getPicCodeUrl($opendId);

		// print_log("imageurl:".$imageUrl);

		$content="<a href='".$info_url."'>点击查看我的公益名片</a>";

		return $this->getTextResult($this->fromUsername,$this->toUsername,$content);

	}


	// 点击 推荐活动菜单处理方法
	function clickActives(){

		//获得当前用户openId
		$opendId=$this->fromUsername;

		// 检查用户是否已经绑定
		$model=new MemberModel();

		$isband=$model->checkBand($opendId);

		// 如果没有绑定，提示用户绑定
		if(!$isband){

			$url=$this->getBundUrl();

			$content="您还没有绑定打卡器账号，暂不能使用该功能。<a href='".$url."'>点我绑定账号</a>";

			return $this->getTextResult($this->fromUsername,$this->toUsername,$content);
		}

		//获取我报名参加的前10条活动信息，推送给用户

        print_log("--\$opendId:$opendId");

		// 通过openid 获取 memberid
		$memberid=$model->getMemberIdByOpenId($opendId);

        print_log("--\$memberid:$memberid");

		$items=array();

		$activiyts=$model->joinActivitys($memberid);

		// 如果没有活动，通知用户
		if(empty($activiyts)){

			return $this->getTextResult($this->fromUsername,$this->toUsername,"您还没有参加公益活动");
		}

		// 活动预览页面（wap）
		$activiy_wap_url=getConfig("url_activity_info")."?activityId=";
		// 默认活动图片
		$default_pic_url=getConfig("url_activity_def_image");

		foreach ($activiyts as $key => $value) {
			
			$items[$key]["title"]=$value["name"];
			$items[$key]["description"]=str_replace("&nbsp;", '', strip_tags($value["demo"]));
			$items[$key]["picurl"]=$default_pic_url;
			$items[$key]["url"]=$activiy_wap_url.$value["id"];

		}

		return $this->getNewsResult($this->fromUsername,$this->toUsername,$items);

	}


	// 点击 我的排名 菜单处理方法
	function clickRanking(){

		// 获取用户微信好友列表

		// 依次检查好友在打卡器上是否绑定账号，如果绑定，获取好友的公益时间

		// 

		return $this->getTextResult($this->fromUsername,$this->toUsername,"你点击了排行榜");
	}




	
}

